package com.icinfo.cloud.provider.punish.service;

import com.alibaba.fastjson.JSONObject;
import com.icinfo.cloud.provider.peripheralinterface.xzzf.dto.DingUserResultDto;
import com.icinfo.cloud.xzcf.provider.member.line.dto.LineDTO;
import com.icinfo.cloud.xzcf.provider.member.userinfo.dto.UserDTO;
import com.icinfo.cloud.xzcf.provider.member.zfpeople.dto.ZfPeopleBaseInfoVO;

import java.util.List;

/**
 * 描述：行政执法接口服务
 *
 * @author xiangyuyu
 * @date 2022/4/8 11:52
 */
public interface IXzzfInterfaceService {

    /**
     * 描述：获取执法人员信息
     *
     * @param baseInfoRequest TODO：入参格式最好是优化成实体类
     * @return List<ZfPeopleBaseInfoVO>
     * @author xiangyuyu
     * @date 2022-04-08 13:54
     */
    List<ZfPeopleBaseInfoVO> getZfPeopleList(JSONObject baseInfoRequest);

    /**
     * 描述：获取执法证编号信息
     *
     * @param userId 用户Id
     * @return String 执法证编号信息
     * @author xiangyuyu
     * @date 2022-04-08 16:58
     */
    String getLawEnforcementCertWithUserId(String userId);
    /**
     * 描述：根据条线code获取条线信息
     *
     * @param lineCode 行代码
     * @return {@link LineDTO }
     * @author shishengyao
     * @date 2022/06/29
     */
    LineDTO getLineInfoByLineCode(String lineCode);

    /**
     * 描述： 根据用户id获取办案人员信息
     *
     * @author: zhengqiang
     * @date: 2022/8/27
     * @param: userId
     * @return {@link UserDTO}
     **/
    UserDTO getUserByUserId(String userId);

    /**
     * 描述： 根据浙政钉id获取用户信息
     *
     * @author: zhengqiang
     * @date: 2022/8/19
     * @param: ZwdingAccountId
     * @return {@link DingUserResultDto}
     **/
    JSONObject getUserByZwdAccountId(String ZwdingAccountId);

    /**
     * 描述： 根据accountId获取用户token
     *
     * @author: zhengqiang
     * @date: 2022/12/9
     * @param: accountId
     * @return {@link String}
     **/
    String getXzzfTokenByAccountId(String accountId);
}
